←
▼
▲
翻訳ファイルの情報に従って、テキストファイルがすべて翻訳できているかどうかチェックします。
参考
番号またはコマンド >TranslateTest
英訳のテストをします。
★翻訳ファイル (*.trans) は上書きされます。
翻訳ファイル (*.trans) のパス、または、フォルダーのパス >C:\folder\sample.trans
Enter のみ : 出力しませんが、翻訳後に日本語が残っていないことをチェックします
出力フォルダーのパス(★上書きされます)>
<WARNING msg="Not English character exists" line_num="3"/>
<WARNING msg="Not English character exists" line_num="4"/>
C:\folder\sample.trans
TranslateTest
を使って、*.trans ファイルの拡張子と関連付けすると、
*.trans ファイルをダブルクリックするだけですべて翻訳できているかどうかのチェックが
できるようになります。
参考
TranslateTest の関数
フォルダー全体に英語以外が無いか調べる
翻訳する関数
翻訳するコマンド、翻訳ファイルの説明
→ vbslib Prompt.vbs
ソース
翻訳ファイルの内容は上書きされるため注意してください。
翻訳するファイル名と行番号が追記され、行番号の順番でソートされます。
←
▼
▲
*.lines ファイルをダブルクリックしたときに、
が起動するようにします。
関連
→ vbslib Prompt.vbs
ソース
←
▼
▲
*.lines ファイルをダブルクリックしても、
が起動しないようにします。
→ vbslib Prompt.vbs
ソース
←
▼
▲
番号またはコマンド >TwoWayMerge
-------------------------------------------------------------------------------
2ウェイ マージ(2方向マージ)をします。
比較するファイル(左側) >C:\Left.txt
比較するファイル(右側) >C:\Right.txt
マージした結果の出力先ファイル(★上書きします) >C:\_Merged.txt
2ウェイ マージ(2方向マージ)をします。
TwoWayMerge
C:\Left.txt
→ vbslib Prompt.vbs
ソース
→ ToolsLib.vbs
C:\Right.txt
C:\_Merged.txt
関連
←
▼
▲
zip ファイルの中のルートに1つのフォルダーだけがあるときは、そのフォルダー
の中を展開します。
すでに zip ファイルと同じ名前のフォルダーがあったときは、これまであった
フォルダーを *_old に改名し、同じ名前のフォルダーに展開します。
すでに *_old フォルダーもあったときは、*_old2 フォルダーに改名します。
関連
zip 形式の圧縮ファイルを展開します。
→ T_Zip.vbs # [T_unzip_sth]
テスト
番号またはコマンド >unzip
-------------------------------------------------------------
zip ファイルを展開します。
zip ファイルと同じ名前のフォルダーを作成し、その中に展開します。
zip ファイルのパス >C:\sample1.zip
"sample1_old" に改名しました。: "C:\sample1"
展開しました。
zip ファイルと同じ名前のフォルダーができ、その中に展開します。
unzip
C:\sample1.zip
←
▼
▲
関連
→ ModuleAssort
パッチ(新モジュールのフォルダーと旧モジュールのフォルダー)があるときに、
プロジェクト フォルダーの中にある旧モジュール(の一部を変更したもの)を新モジュール
(の一部を変更したもの)に置き換える、作業フォルダーをデスクトップの _UpdateModule に
作成して、モジュールを更新する作業を 3ウェイ マージを使って支援します。
番号またはコマンド >UpdateModule
-------------------------------------------------------------------------------
プロジェクト フォルダーの中にある、古いリビジョンのモジュールを、新しいリビジョ
ンに置き換えます。 作業フォルダーをデスクトップの _UpdateModule に作成します。
New :新モジュールが入ったフォルダーのパス >C:\patch
Old :旧モジュールが入ったフォルダーのパス >C:\back_up
Target:旧モジュールが入ったプロジェクト フォルダーのパス >C:\Target
Enter のみ:マージの設定ファイルを使わない。
マージの設定ファイル >
同期するファイルの一覧:
中央の記号の意味: [=]同じ [!]異なる [ ]両方不在
左右の記号の意味: [*]変更 [+]追加 [-]削除 [.]不変 [ ]不在
左はベース、右はワーク
-------------------------------------------------------------------------------
前回コミット時のベース: "2B_ModuleSynchronized"
前回コミット時のワーク: "1B_TargetSynchronized"
-------------------------------------------------------------------------------
■ベース(Module): "2A_ModuleNew"
■ワーク(Target): "1A_TargetMerged"
1. .=. Image.bmp
2. *!. Source.c
91. 再スキャンする [Rescan]
92. ルート・フォルダーを開く
99. 終了
番号 >2
-------------------------------------------------------------------------------
ベース:C:\2A_ModuleNew\Source.c"
ワーク:C:\1A_TargetMerged\Source.c"
次のメニューの 1.で開く2つのファイルを手動で同期したら、コミットしてください。
-------------------------------------------------------------------------------
★ベース(Module): Source.c (*変更)
★ワーク(Target): Source.c (.不変)
1. Diff で開く:同期するファイル (*異なる) [ ベース / ワーク ]
2. Diff で開く:前回コミット時の同期内容 (=同じ) [ ベース / ワーク ]
4. Diff で開く:ベース (*変更) [ 前回コミット時 / 現在 ]
5. Diff で開く:ワーク (.不変) [ 前回コミット時 / 現在 ]
44.Diff で開く:[ 前回コミット時のベース / ベース / ワーク ]
55.Diff で開く:[ ベース / ワーク / 前回コミット時のワーク ]
6. ファイルまたはフォルダーを開く
8. 同期をコミットする
9. 戻る
番号 >
同期が完了したら、その内容をプロジェクトに反映させてください。
同期済み:"C:\1A_TargetMerged"
Targetプロジェクト:"C:\Target"
UpdateModule
C:\Target
C:\patch
C:\back_up
参考
→ vbslib Prompt.vbs
ソース
テスト
→ T_ModuleAssort.vbs
T_UpdateModule_sth
プロジェクト フォルダーは、複数のモジュールからなるフォルダーという意味で、特別な構成をした
フォルダーではなく、普通のフォルダーです。 UpdateModule では、置き換える対象となる
モジュールを持っているプロジェクト フォルダーのことをターゲットと呼んでいます。
新旧モジュールからパッチをあてます
3ウェイ マージ
新旧の比較、プロジェクトとモジュールの比較
モジュール/ターゲット/リビジョンに分類
3ウェイ マージの Base, Left, Right は、UpdateModule の 4. Old (2B), 1. New (2A), 5. Target (1B)
です。 3ウェイ マージにおける、それぞれの差分と、上記メニュー(SyncFilesX のメニュー)との
対応は、次の通りです。 なお、可能な限り自動的にマージを行って 2. Merged(1A) を作成して
Menu-2 の差分が Menu-1 の差分と同じ、または、Menu-4 の差分が Menu-5 の差分と同じなら
一般にマージ完了です。 差分が少ないほうのペアで調整するとよいでしょう。
新モジュールが共通の旧モジュールからブランチしたものでも、それをマージするのであれば、
UpdateModule コマンドが使えます。
古いパッチを新しいターゲットにあてることもできますが、新旧の関係とベース/ワークの
関係が逆に表示されます。
「ベース」と表示されているものは、モジュール単体です。
「ワーク」と表示されているものは、ターゲット プロジェクトです。
「6. ファイルまたはフォルダーを開く」 で選ぶファイルの意味は、次のとおりです。
表示
UpdateModule コマンドでの意味
1. ベース
2. ワーク
4. 前回コミット時のベース
5. 前回コミット時のワーク
新モジュール単体 [New, 2A]
ターゲット(マージ後) [Merged, 1A]
コミット前は、旧モジュール単体 [Old, 2B]
コミット後は、新モジュール単体
コミット前は、ターゲット(マージ前) [Target, 1B]
コミット後は、ターゲット(マージ後)
いますが、2. Merged(1A) に
のコンフリクトのタグが付くこともあります。
4. Old (2B)
5. Target (1B)
1. New (2A)
2. Merged(1A)
Menu-1
Menu-4
Menu-5
Menu-2
4_Old (2B)
5_Target (1B)
1_New (2A)
2_Merged(1A)
Menu-1
Menu-4
Menu-5
Menu-2
←
▼
▲
テキストを XML/HTML の実体参照に変換します。
番号またはコマンド >XmlText
-------------------------------------------------------------------------------
テキストを XML/HTML の実体参照に変換します。
1) テキスト → XML/HTML テキストの実体参照 [ToRef]
番号またはコマンド名を入力してください >1
Enter のみ:クリップボードの内容を入力とします。
変換前のテキストが書かれたファイルのパス >
変換しました。
XmlText
1
関連
連続空白
の置き換えは行いません。
←
▼
▲
テキストファイルの一部を置き換えます。
テキストファイルの一部が同じかどうか比較します。
複数のフォルダで指定した名前のファイルの内容をマージする手助けをします。
vbslib を使ったスクリプトをバージョンアップする
Syncs
2つのファイルの同期を自動的に取ります
SearchNewFile
新しく更新したファイルを探します
XML の一部を取り出します。
vbslib を使って作られたツールです。
vbslib を使うときに役に立つプログラムを参考に挙げます。
MS Office をフルインストールしたときに使えます
スクリプト・デバッガが使えるのは、Standard 以上
vbslib は構造化テキストになっています
ドキュメントからソースコードにジャンプできます
関連
C言語の #define から、数値と文字列の配列のコードを生成します。
テキスト比較 diff ツール
テキスト・エディター
←
▼
▲
テキストファイルが英語だけになっているかチェックします。
チェックするファイルまたはフォルダーのパス: TestData
設定ファイルのパス: TestData\SettingForCheckEnglish.ini
<FILE path="KanjiInUnicode.txt">
<LINE num="2" text="漢字"/>
<LINE num="4" text="です。"/>
<SUMMARY count="2"/>
</FILE>
<FILE path="Sub\SJisInAscii.txt">
<LINE num="2" text="シフトJIS"/>
<LINE num="4" text="です。"/>
<SUMMARY count="2"/>
</FILE>
出力の例:
[CheckEnglishOnlyExe]
ExceptFile = *.exe
ExceptFile = *.lib
ExceptFile = *.dll
; comment
ExceptFile = *\AnyFolder.txt
ExceptFile = Sub\StepPath.txt
ExceptFile = *\SubFolder\*
CheckEnglishOnly.exe /Folder:FolderA /Setting:Setting.ini
テキスト・ファイルの中に、英文字以外の文字が含まれるファイルを一覧します。
コマンド・プロンプトから実行してください。
【引数】
/Folder
/Setting
チェックするフォルダーのパス
設定ファイルのパス
関連
→ T_CheckEnglishOnly.vbs # T_CheckEnglishOnly
テスト
vbslib 版
→ scriptlib\vbslib\CheckEnglishOnly フォルダー
→ _src\Test\tools\scriptlib\vbslib\CheckEnglishOnly フォルダー
ソース
→ CheckEnglishOnly_src_121106.zip
実行ファイルまたはソースがある場所:
コマンド・プロンプト版
* から始まる設定の場合は、すべてのフォルダーに対する設定になります。
相対パスの基準は、設定ファイルがあるフォルダーです。
相対パスの基準は、設定ファイルがあるフォルダーです。
ただし、/Setting オプションがないときは、チェックするフォルダーです。
←
▼
▲
/Folder:"FolderPath" /Setting:"SettingForCheckEnglish.ini"
/* Set "except_names" : 設定ファイルに指定した "ExceptFile" */
→ CheckEnglishOnly.c
e= Set2_alloc( &except_names, &except_name, StrMatchKey );
FileT_callByNestFind
/* "path" が、チェックをしないファイル "except_names" に含まれるならスキップする */
ファイル一覧、設定ファイル関係:
Main_getFilePathFromNestFind
if ( StrMatchKey_isMatch( except_name, path ) ) { break; }
/* Set "paths" : チェックするファイルのパスの集合。
if ( IniStr_isLeft( line, _T("ExceptFile") ) ) {
←
▼
▲
(src)
Set w_= AppKey.NewWritable( "." ).Enable()
Set rep = new ReplaceSymbolsClass
rep.Load "ReplaceSymbols.xml"
rep.ReplaceFiles
複数のファイルの中の複数の単語(文字列)を一度に置き換えます。
サンプル
参考
テスト
→ T_ReplaceSymbols フォルダー
ユーザーに確認を求めないときは、rep.IsSubmit = False してください。
←
▼
▲
Sub ReplaceSymbolsClass::Load( XML_Path as string, Config as ReplaceSymbolsLoadConfigClass )
を読み込みます。
【引数】
XML_Path
ReplaceSymbols の設定ファイルのパス
Config
Empty または、設定
Class ReplaceSymbolsLoadConfigClass
Public IsReverse '// as boolean
End Class
IsReverse = True なら、Replace タグの from と to を入れ替えて、置き換えます。
←
▼
▲
Sub ReplaceSymbolsClass::ReplaceFiles()
設定に従って、指定した複数のファイルの中の文字列の単語を置き換えます。
設定するには、
を使います。
←
▼
▲
cscript.exe ConvSymbol.vbs /in_type:CDefine /in:file.h /out_type:CLang /out:file.c
/strs_array_name:g_Symbols_strs /ids_array_name:g_Symbols_ids
シンボルを定義しているC言語の #define から、数値と文字列の配列のコードを生成します。
入力ファイル・サンプル:
#define Sym1 10
#define Sym2 11
出力ファイル・サンプル:
TCHAR* g_Symbols_strs[] = {
_T("Sym1"),
_T("Sym2"),
};
int g_Symbols_ids[] = {
10,
11,
};
StrT_convStrToId 関数(clib) を使うと、文字列から数値に変換することができます。
→ StrT_convStrToId
テスト
→ Test_ConvSymbol フォルダ
int id;
TCHAR str[256];
_tcscpy_s( str, _countof(str), _T("Sym1") );
id = StrT_convStrToId( str, g_Symbols_strs, g_Symbols_ids,
sizeof(g_Symbols_strs)/sizeof(*g_Symbols_strs), 0 );
参考
【引数】
in_type
in
CDefine 固定
C言語の #define が書かれたテキスト・ファイルのパス
out_type
CLang 固定
→ ConvSymbol フォルダ
out
数値と文字列の配列の C言語コードの出力先となるファイルのパス
strs_array_name
ids_array_name
文字列の配列の変数名
数値の配列の変数名
Sub ConvSymbol( InPath as string, OutPath as string, Opt as ConvSymbolOption )
Class ConvSymbolOption
Public InType
Public OutType
Public StrsFuncName
Public IDsFuncName
End Class
内容は、上記引数と同じ
サンプル・スクリプト:
Set conv_option = new ConvSymbolOption
Set o = conv_option
o.InType = "CDefine"
o.OutType = "CLang"
o.StrsFuncName = "g_Symbols_strs"
o.IDsFuncName = "g_Symbols_ids"
ConvSymbol "file.h", "file.c", conv_option
サンプル
(src)
'//=== make g("OutTableH")
Dim rep, line
Set rep = StartReplace( g("OutTableC"), g("OutTableH"), True )
rep.w.WriteLine "#if __cplusplus"
rep.w.WriteLine " extern ""C"" {"
rep.w.WriteLine "#endif"
rep.w.WriteLine ""
Do Until rep.r.AtEndOfStream
line = rep.r.ReadLine()
If InStr( line, "g_Symbols_strs" ) > 0 or InStr( line, "g_Symbols_ids" ) > 0 Then
rep.w.WriteLine "extern "+ Replace( line, " = {", ";" )
End If
Loop
rep.w.WriteLine ""
rep.w.WriteLine "#if __cplusplus"
rep.w.WriteLine " } // extern ""C"""
rep.w.WriteLine "#endif"
rep.w.WriteLine ""
rep.w.WriteLine "// "+ g("OutTableH") +" was made by """+ WScript.ScriptName +""""
rep.Finish
C ファイルから、ヘッダファイルを作成するスクリプトは、下記のようになります。
←
▼
▲
テキストの差分を表示するプログラムです。 TortoiseSVN (SubVersion) に付属しています。
参考
←
▼
▲
開発元
関連
テキストの差分を表示するプログラムです。
推奨初期設定
[ 設定 | 比較フィルタ | タブと空白を削除 ] を選択してから、Rekisa を再起動します。
"$(PATH)" -Y=$(Y+1)
サクラエディタで開く(&S)
C:\Program Files\sakura\sakura.exe
[ 設定 | 外部ツール ]
フォルダを開く(&F)
explorer
/SELECT, "$(PATH)"
( -X=$(X+1) は使いにくい)
←
▼
▲
ArgsLog.exe に指定したパラメーターを、カレント・フォルダーの ArgsLog.txt ファイルに追記出力します。
テスト用です。
テスト プログラムが、テスト対象のプログラム(exe ファイル)を起動する代わりに ArgsLog.exe を起動
したり、テスト対象のプログラムに例えば /ArgsLog オプションを付けることで関数の内部から起動する
exe ファイルを ArgsLog.exe に切り替えたりすることがよくあります。 たとえば、テスト対象のプログラム
がテキスト エディターを起動する関数を呼び出したとき、その関数の中で ArgsLog.exe が起動され、
テキスト エディターが起動したものとしてテストを実施し、起動したコマンドラインについて ArgsLog.txt
ファイルをチェックします。
→ ArgsLog フォルダー
参考
関連
←
▼
▲
vbslib を使ったスクリプトは、スクリプトがテキスト・ファイルを開くために起動するエディターや、
テキストを比較するツールなどを、「C:\Program Files」 フォルダーを調べて自動的に探します。
なお、設定は、
の PC_setting_default.vbs や
PC_setting_default.vbs
PC_setting.vbs に入っている下記の関数定義です。
探し方を変更するときは、
の
で設定を変更してください。
の中の .vbs ファイルに、ユーザーが定義する関数です。
インクルードする外部 .vbs ファイルのパスの配列を返す。
フォルダーを開きます。
管理者のユーザ名を返します。
すべてのモジュールをインクルードした後のコールバック。
関連
テスト用に、外部プログラムを起動したログを出力する